$(document).ready(function () {

	var tree = $("#tree").jstree({
        "core": {
            "animation": true,
            "multiple": false,
            "check_callback": true,
            "themes": { "stripes": false },
            'data': {
                'url': "/hs/func/getFuncList",
                "dataType": "json",
                'data': function (node) {
                    return { 'id': node.id };
                }
            }
        }

    }).on("changed.jstree", function (event, data) {

    	resetFunc();
    	
        if (data.selected.length > 0) {

            var sel = data.instance.get_node(data.selected[0]).original.attr;
            
            infoShow(data.selected[0]);
            
        }

    }).jstree();
        
	
    $('#show-root').on('click',function(data){
    	
    	resetEdit();
    	
    	$('#function-area').hide();
    	
    	$('#t-root').show();
    	
    })
    
    $('#show-child').on('click',function(data){
    	
    	if(myNotyNull('请先选中父功能',$('#id').val())==false)
    	{
    		return;
    	}
    	    	
    	//需要判断是不是一级类
    	var s=$('#tree').jstree('get_node',$('#id').val()).parent;
    	
    	if(s!="#")
   		{
    		myNoty('不能添加三级功能','failed');
    		
    		return;
   		}
   	
    	resetEdit();
    	
    	$('#function-area').hide();

    	$('#t-child').show();
    	
    })
    
    
    $('.add-cancel').on('click',function(data){
    	
    	resetFunc();
    	
    })
    
    $('#add-root').on('click',function(data){
    	
    	createFunc(
    			$.trim($('#code').val()),
    			$.trim($('#name').val()),
    			$.trim($('#comment').val()),
    			$.trim($('#url').val()),
    			$.trim($('#order').val()),
    			$('#activated').prop('checked'),
    			''
    	);
    	
    })
    
    $('#add-child').on('click',function(data){

    	createFunc(
    			$.trim($('#code').val()),
    			$.trim($('#name').val()),
    			$.trim($('#comment').val()),
    			$.trim($('#url').val()),
    			$.trim($('#order').val()),
    			$('#activated').prop('checked'),
    			$.trim($('#pid').val())
    	
    	);
    	
    })
    
    
    
    $('#update').on('click',function(){
    	
    	updateFunc(
    			$.trim($('#id').val()),
    			$.trim($('#code').val()),
    			$.trim($('#name').val()),
    			$.trim($('#comment').val()),
    			$.trim($('#url').val()),
    			$.trim($('#order').val()),
    			$('#activated').prop('checked')    			
    	);
    	
    })
    
    
    $('#delete').on('click',function(){
    	
	    if(myNotyNull('请选中功能',$('#id').val())==false)
		{
	    	return;
		}
	    
	    if ($("#tree").jstree('is_parent',$('#id').val()))
	    {
	    	myNoty('含有子功能，不能删除','failed');
	    	return;
	    }  
	    
	    var c=confirm("功能"+$('#name').val()+"将被删除，确定吗？")
	    
	    if(c)
	    {
	    	deleteFunc($('#id').val());
	    }   	  	
    	
    })
    
    
    
    
})

//重置编辑区
function resetEdit(){
	
	//设置pid，若是添加根，不会调用
	$('#pid').val($('#id').val());
	
	$('#id').val('');
	
	$('#code').val('');
	$('#name').val('');
	$('#comment').val('');
	$('#url').val('');
	$('#order').val('0');
	$('#activated').prop('checked',true);
	
	
	$('#code').focus();
	
}

//重置功能区
function resetFunc(){
	
	
	$('#function-area').show();

	$('#t-child').hide();
	
	$('#t-root').hide();
	
}

//显示信息
function infoShow(id)
{
	
	$.myAjax(basePath+'/func/getFuncInfo.do',
			{funcId:id},
			'post',
			function(data){
		
				if(data.status==10001)
				{
					
					$('#id').val(data.data.funcId);
					$('#pid').val(data.data.parentId);
					$('#code').val(data.data.funcCode);
					$('#name').val(data.data.funcName);
					$('#comment').val(data.data.funcDescribe);
					$('#url').val(data.data.loadUrl);
					$('#order').val(data.data.orderId);
					$('#activated').prop('checked',data.data.isActivated);
					
					
					}
				
				},	
				
			    function () {
			        showLoading('loadingFuncImg');
			    },
			    function () {
			    	hideLoading('loadingFuncImg');
			    },function(){
			    	window.location.reload();
			    }
			)

}

//创建功能
function createFunc(code,name,comment,url,order,activated,pid)
{
	if(myNotyNull('请输入编码',code)==false)
	{
		return;
	}

	if(myNotyNull('请输入名称',name)==false)
	{
		return;
	}

	if(myNotyNull('请输入序号',order)==false)
	{
		return;
	}	

	

	var activate=0;
	if(activated==true){
		activate=1;
	}
	
	
	if(pid==''){
		pid=null;
	}
	
	$.ajax({
		url:basePath+'/func/addFunc.do',
		data:{
			funcCode:code,
			funcName:name,
			parentId:pid,
			funcDescribe:comment,
			isActivated:activate,
			loadUrl:url,
			orderId:order
		},
		datatype : "json",
		type: 'POST',
        async: false,
        success: function (data) {
        	
        	if(data.status==10001)
			{
				resetFunc();
				
				$('#tree').jstree('refresh');
			}
        	
        }
	}),
	
	function () {
		showLoading('loadingFuncImg');
	},
	function () {
		hideLoading('loadingFuncImg');
	},function(){
	    window.location.reload();
	}
}

//更新功能
function updateFunc(id,code,name,img,comment,url,order,activate)
{
	if(myNotyNull('请输入编码',code)==false)
	{
		return;
	}

	if(myNotyNull('请输入名称',name)==false)
	{
		return;
	}

	if(myNotyNull('请输入序号',order)==false)
	{
		return;
	}	

	$.myAjax(basePath+'/func/updateFunc.do',
		{id:id,funcCode:code,funcName:name,
		funcDescribe:comment,
		loadUrl:url,orderId:order,isActivated:activate},
		'post',
		function(data){
	
	
			if(data.status==10001)
			{
				resetFunc();
				//reload tree
				$('#tree').jstree('refresh');
			}
			
		},
	
		function () {
			showLoading('loadingFuncImg');
		},
		function () {
			hideLoading('loadingFuncImg');
		},function(){
	    	window.location.reload();
	    }
	)
}


//删除功能
function deleteFunc(id)
{	
	$.myAjax(basePath+'/func/deleteFunc.do',
		{funcId:id},
		'post',
		function(data){
		
			if(data.status==10001)
			{
				//reload tree
				$('#tree').jstree('refresh');
			}
		
		},		
		function () {
			showLoading('loadingFuncImg');
		},
		function () {
			hideLoading('loadingFuncImg');
		},function(){
	    	window.location.reload();
	    	
	    },function(){

			resetEdit();
	    	
	    }
	)
}